---
title: PolicyAssociation
summary: API reference for PolicyAssociation.
status: draft
owner: SAIF Corporation
last_reviewed: 2026-08-21
library: SAIF.Business.View.Policy
reference_type: embedded
---

# PolicyAssociation

This row object is the compact association shape materialized by `PolicyAssociationList.GetPolicyAssociationList` from the UNION-based relationship query documented as SQL-034. It carries the policy number, derived association type, and parent/child flag that `PolicyAssociationExtensions` later uses for filtering, parent discovery, affiliate-type conversion, and manual/non-manual navigation in the current associations model.

## Purpose
- Represent one association returned by the current association-list retrieval path in `PolicyAssociations.vb`.
- Preserve the minimum facts needed by extension helpers: the related policy number, the normalized `AssociationTypes` value, and whether that related policy is treated as the parent row.
- Bridge the newer association model back to the obsolete affiliate-type view through `ToAffiliateType`, enabling legacy callers to keep working while the associations property replaces affiliated-policy APIs.*

## Context
- Namespace: `SAIF.Business.View.Policy`
- Assembly/package: `SAIF.Business.View.Policy` (embedded)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `AssociationType` | `Public ReadOnly Property AssociationType() As AssociationTypes` | Identifies which normalized relationship family the row belongs to after SQL relationship codes are translated into the library's `AssociationTypes` enum. |
| `PolicyNumber` | `Public ReadOnly Property PolicyNumber() As Decimal` | Holds the related policy identifier that collection filters and parent/child navigation operate on. |
| `ToAffiliateType` | `Public Function ToAffiliateType() As clsPolicyData.AffiliateTypes` | Converts the association row into the legacy affiliate-type enum expected by obsolete callers, using both the association type and the parent flag to choose the mapped value.* |
| `IsParent` | `Public ReadOnly Property IsParent() As Boolean` | Indicates whether the row represents the parent-side policy in the retrieved relationship set, which drives parent-policy checks in the extension layer. |

## Behavioral notes
- Instances are created only through a Friend constructor, so external consumers receive populated rows from `PolicyAssociationList` rather than assembling them manually.
- `ToAffiliateType` delegates the mapping decision to extension logic on `AssociationType`, which means legacy affiliate semantics are derived from the newer association representation.*
- The row itself does not enforce [BR-VP-014](../../business-rules.md#br-vp-014-source-policy-excluded-from-associations-by-default); that exclusion occurs in the list factory that decides which rows to instantiate.

## Constraints and usage notes
- This type does not expose policy names, status text, or effective dates; callers needing richer header data must use the `Associations/` header-association model instead.
- `IsParent` is sourced from SQL result flags (`Y`/`N`) interpreted by `PolicyAssociationList`, so its meaning depends on the retrieval query's parent-selection rules.

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts.

## Sources
- `SAIF.Business.View.Policy/PolicyAssociations.vb`
